package naga.x.service;

public interface ServiceManager extends ServiceFactory {

	public <T extends Service> void add(T service);
	public <K extends Service, T extends K> void add(Class<K> serviceKey, T service);
	public <T extends Service> void remove(T service);
	public <T extends Service> void remove(Class<T> serviceKey);
	public <T extends Service> T get(Class<T> serviceKey);
	public void shutdown();
	
}
